// 用户模型
const { User, validateUser } = require('../../../models/user');
// 统一数据返回类
const { DataReturn } = require('../../../common/returnclass');

/**
 * @api {Post} /users 添加用户
 * @apiGroup Admin-Users
 *
 * @apiParam {String} username 用户名
 * @apiParam {String} password 密码
 * @apiParam {Number} mobile 手机号
 * @apiParam {String} avatar 用户头像
 * @apiParam {String} role 角色
 * @apiParam {String} [receiving_address] 收货地址，普通角色需要填写
 *
 * @apiSuccess {Number} code 状态码
 * @apiSuccess {Object} data 返回数据
 * @apiSuccess {String} msg  返回消息
 */
module.exports = async (req, res) => {
	// 用户名 密码 手机号
	let { username, password, mobile, avatar, role,receiving_address } = req.fields;
	
		 // 数据格式校验
		 const { error } = validateUser(req.fields);
		 // 格式不符合要求
		 if (error) return DataReturn.getData(res,400,[], error.message);
		 // 查找用户
		 let userinfo = await User.findOne({ username });
		 // 用户存在响应
		 if (userinfo) return DataReturn.getData(res,400,[], '用户名已存在');
		 // 创建分类对象
		 userinfo = new User(req.fields);
		 // 保存分类
		 userinfo.save()
		 .then(()=>{
		 	DataReturn.getData(res,200,userinfo,'添加用户成功')
		 }).catch(()=>{
		 	DataReturn.getData(res,400,userinfo,'添加用户失败')
		 })

	
}